import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex);

let store = new Vuex.Store({
  strict: true,     //严格模式——只能由mutation修改状态
  state: {
    arr:[]
  },
  mutations: {
   setArr(state,value){
     state.arr = value
   }
  },
  actions:{
   loadArr({commit},arg){
     setTimeout(()=>{
       console.log("执行actions")//执行1次
      commit("setArr",[4,5,6])
     },2000);
   }
  },
  getters: {//相当于计算属性   如果没有if判断会无限运行  不断的去改变不断的去重新计算
    arr(state){
      console.log("c")//执行两次  
      if(state.arr.length==0){
       store.dispatch("loadArr");
      }
      return state.arr;
    }
  }
});

export default store;